[Arbitrum][Integrate]RIP-7728 #10
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Integrates RIP-7728 implemented in #2 to "arbitrum-geth".
RIP-7728
This proposal introduces a new precompiled contract,
L1SLOAD
, that loads several storage slots from L1, requiring a contract address, storage keys, and RPC connection to L1.Implementation details
To leverage this precompile node runner on L2; it must have the following:
Our
rollup-geth
has a flag--rollup.l1.rpc_endpoint
from which it reads the URL of the required L1 RPC.But, since Arbitrum injects
geth
execution client during the nitro setup, we cannot leverage this flag. I propose to extend thenitro
so that:evm
Overriding the default config
Out of the box,
rollup-geth
provides the following method for "dealing" with the latest L1 block:The code is located in
core/vm/contracts_rollup_overrides
. We should pass into theGetLatestL1BlockNumber
appropriate method for providing the latest L1 block on the Arbitrum blockchain.